<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
</body>
<script>
    /**
     * 创建一个可重复执行指定次数的函数
     * @param {Function} fn - 需要重复执行的函数
     * @param {number} repeat - 函数需要执行的次数
     * @param {number} interval - 每次执行的时间间隔(毫秒)
     * @returns {Function} 返回一个新的函数，调用该函数会启动重复执行过程
     */
    function createRepeat(fn, repeat, interval){
        // 返回的新函数接受任意参数
        return function(...args){
            let current = 0;

            // 设置定时器实现周期性执行
            let timer = setInterval(()=>{
                current++

                // 达到指定次数后清除定时器
                if (current >= repeat) {
                    clearInterval(timer)
                }

                // 每次执行传入目标函数及参数
                fn(...args)
            },interval)
        }
    }
    const repeatFn = createRepeat((a,b)=>{console.log(a+b)}, 5, 1000)
    repeatFn(1,2)
</script>
</html>